package com.grupobbva.seguridad.util;

public class ResultadoOperacionExcepcion extends ResultadoOperacion
{
	public ResultadoOperacionExcepcion() {
		this.tipo = EXCEPTION;
	}
	public ResultadoOperacionExcepcion(String mensaje) {
		this();
		this.mensaje = mensaje;
	}
	public ResultadoOperacionExcepcion(Exception exception) {
		this.tipo      = EXCEPTION;
		this.resultado = exception;
	}
	public ResultadoOperacionExcepcion(String mensaje, Exception exception) {
		this.tipo    = EXCEPTION;
		this.mensaje = mensaje;
		this.resultado = exception;
	}
	
	public void setException(Exception exception) {
		this.resultado = exception;
	}

	public Exception getException() {
		return (Exception) resultado;
	}
	
	public String serializar() {
		StringBuilder sb = new StringBuilder();
		sb.append(super.serializar());
		sb.append("&exception_mensaje="+getException().getMessage());
		sb.append("&exception_trace=");
		for (StackTraceElement stackTraceElement:getException().getStackTrace()) {
			sb.append(stackTraceElement.toString()+";");
		}
		return sb.toString();
	}
}
